/*! \file generateurs.hpp
    \brief Une classe de constantes qui declare quelques types de distributions.
    Details.
*/

#ifndef __GENERATEURS__H__
#define	__GENERATEURS__H__


/*STL*/
#include <iostream>
#include <fstream>
#include <ctime>            // std::time
#include <math.h>
#include <cstdlib>

/*UNIX*/
#include <unistd.h>

/*BOOST*/
#include <boost/random/linear_congruential.hpp>
#include <boost/random/uniform_int.hpp>
#include <boost/random/uniform_real.hpp>
#include <boost/random/variate_generator.hpp>
#include <boost/random/bernoulli_distribution.hpp>

/** 
 *\class generateurs. 
 */
class generateurs {
public:
  /**
   *\brief taille correspondant a un petit bloc memoire. 
   */ 
  const static int petit_bloc=8;

  /**
   *\brief taille correspondant a un gros bloc memoire, typiquement une page. 
   */ 
  const static int gros_bloc =4096;
  

  /**
   *\brief Type generateur.
   * @see boost/random/
   */ 
  typedef boost::minstd_rand base_generator_type;
  
  /**
   *\brief Type distribution uniforme.
   *@see boost/random/
   */ 
  typedef boost::uniform_int<> distribution_uniforme_discrete;
  
  /**
   *\brief Fournit une instance d'une distribution par defaut.
   *@see boost/random/
   */ 
  typedef boost::bernoulli_distribution<> distribution_bernouillie;

};

#endif	/* __GENERATEURS__H__ */
